home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / gfx / misc / gnuplot-3.7src.lha / gnuplot-3.7src / gnuplot-3.7.lha / gnuplot-3.7 / term / aed.trm next >
Text File  |  1998-11-26  |  6KB  |  220 lines

  1. /*
  2.  * $Id: aed.trm,v 1.13 1998/04/14 00:17:27 drd Exp $
  3.  *
  4.  */
  5.  
  6. /* GNUPLOT - aed.trm */
  7.  
  8. /*[
  9.  * Copyright 1990 - 1993, 1998
  10.  *
  11.  * Permission to use, copy, and distribute this software and its
  12.  * documentation for any purpose with or without fee is hereby granted,
  13.  * provided that the above copyright notice appear in all copies and
  14.  * that both that copyright notice and this permission notice appear
  15.  * in supporting documentation.
  16.  *
  17.  * Permission to modify the software is granted, but not the right to
  18.  * distribute the complete modified source code.  Modifications are to
  19.  * be distributed as patches to the released version.  Permission to
  20.  * distribute binaries produced by compiling modified sources is granted,
  21.  * provided you
  22.  *   1. distribute the corresponding source modifications from the
  23.  *    released version in the form of a patch file along with the binaries,
  24.  *   2. add special version identification to distinguish your version
  25.  *    in addition to the base release version number,
  26.  *   3. provide your name and address as the primary contact for the
  27.  *    support of your modified version, and
  28.  *   4. retain our contact information in regard to use of the base
  29.  *    software.
  30.  * Permission to distribute the released version of the source code along
  31.  * with corresponding source modifications in the form of a patch file is
  32.  * granted with same provisions 2 through 4 for binary distributions.
  33.  *
  34.  * This software is provided "as is" without express or implied warranty
  35.  * to the extent permitted by applicable law.
  36. ]*/
  37.  
  38. /*
  39.  * This file is included by ../term.c.
  40.  *
  41.  * This terminal driver supports:
  42.  *   AED terminals
  43.  *
  44.  * AUTHORS
  45.  *     Colin Kelley, Thomas Williams, Russell Lang
  46.  *
  47.  * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
  48.  * 
  49.  */
  50.  
  51. /*
  52.  * adapted to the new terminal layout by Stefan Bodewig (Dez. 1995)
  53.  */
  54.  
  55. #include "driver.h"
  56.  
  57. #ifdef TERM_REGISTER
  58. register_term(aed512)
  59. register_term(aed767)
  60. #endif
  61.  
  62. #ifdef TERM_PROTO
  63. TERM_PUBLIC void AED_init __PROTO((void));
  64. TERM_PUBLIC void AED_graphics __PROTO((void));
  65. TERM_PUBLIC void AED_text __PROTO((void));
  66. TERM_PUBLIC void AED_linetype __PROTO((int linetype));
  67. TERM_PUBLIC void AED_move __PROTO((unsigned int x, unsigned int y));
  68. TERM_PUBLIC void AED_vector __PROTO((unsigned int x, unsigned int y));
  69. TERM_PUBLIC void AED_put_text __PROTO((unsigned int x, unsigned int y, char str[]));
  70. TERM_PUBLIC void AED_reset __PROTO((void));
  71.  
  72. #define AED_XMAX 768
  73. #define AED_YMAX 575
  74.  
  75. #define AED_VCHAR    13
  76. #define AED_HCHAR    8
  77. #define AED_VTIC    8
  78. #define AED_HTIC    7
  79.  
  80. /* slightly different for AED 512 */
  81. #define AED5_XMAX 512
  82. #endif
  83.  
  84. #ifndef TERM_PROTO_ONLY
  85. #ifdef TERM_BODY
  86.  
  87. #define AED_XLAST (AED_XMAX - 1)
  88. #define AED_YLAST (AED_YMAX - 1)
  89.  
  90. #define AED5_XLAST (AED5_XMAX - 1)
  91.  
  92. TERM_PUBLIC void AED_init()
  93. {
  94.     fputs("\033SEN3DDDN.SEC.7.SCT.0.1.80.80.90.SBC.0.AAV2.MOV.0.9.CHR.0.FFD", gpoutfile);
  95. /*         2            3     4                5     7    6       1
  96.     1. Clear Screen
  97.     2. Set Encoding
  98.     3. Set Default Color
  99.     4. Set Backround Color Table Entry
  100.     5. Set Backround Color
  101.     6. Move to Bottom Lefthand Corner
  102.     7. Anti-Alias Vectors
  103. */
  104. }
  105.  
  106.  
  107. TERM_PUBLIC void AED_graphics()
  108. {
  109.     fputs("\033FFD\033", gpoutfile);
  110. }
  111.  
  112.  
  113. TERM_PUBLIC void AED_text()
  114. {
  115.     fputs("\033MOV.0.9.SEC.7.XXX", gpoutfile);
  116. }
  117.  
  118.  
  119.  
  120. TERM_PUBLIC void AED_linetype(linetype)
  121. int linetype;
  122. {
  123.     static int color[2 + 9] = { 7, 1, 6, 2, 3, 5, 1, 6, 2, 3, 5 };
  124.     static int type[2 + 9] = { 85, 85, 255, 255, 255, 255, 255, 85, 85, 85, 85 };
  125.  
  126.     if (linetype >= 10)
  127.     linetype %= 10;
  128.  
  129.     fprintf(gpoutfile, "\
  130. \033SLS%d.255.\
  131. \033SEC%d.",
  132.         type[linetype + 2],
  133.         color[linetype + 2]);
  134. }
  135.  
  136.  
  137.  
  138. TERM_PUBLIC void AED_move(x, y)
  139. unsigned int x, y;
  140. {
  141.     fprintf(gpoutfile, "\033MOV%d.%d.", x, y);
  142. }
  143.  
  144.  
  145. TERM_PUBLIC void AED_vector(x, y)
  146. unsigned int x, y;
  147. {
  148.     fprintf(gpoutfile, "\033DVA%d.%d.", x, y);
  149. }
  150.  
  151.  
  152. TERM_PUBLIC void AED_put_text(x, y, str)
  153. unsigned int x, y;
  154. char str[];
  155. {
  156.     AED_move(x, y - AED_VCHAR / 2 + 2);
  157.     fprintf(gpoutfile, "\033XXX%s\033", str);
  158. }
  159.  
  160.  
  161. #define hxt (AED_HTIC/2)
  162. #define hyt (AED_VTIC/2)
  163.  
  164. TERM_PUBLIC void AED_reset()
  165. {
  166.     fputs("\033SCT0.1.0.0.0.SBC.0.FFD", gpoutfile);
  167. }
  168.  
  169. #endif /* TERM_BODY */
  170.  
  171. #ifdef TERM_TABLE
  172. TERM_TABLE_START(aed512_driver)
  173.     "aed512", "AED 512 Terminal",
  174.     AED5_XMAX, AED_YMAX, AED_VCHAR, AED_HCHAR,
  175.     AED_VTIC, AED_HTIC, options_null, AED_init, AED_reset,
  176.     AED_text, null_scale, AED_graphics, AED_move, AED_vector,
  177.     AED_linetype, AED_put_text, null_text_angle,
  178.     null_justify_text, do_point, do_arrow, set_font_null
  179. TERM_TABLE_END(aed512_driver)
  180.  
  181. #undef LAST_TERM
  182. #define LAST_TERM aed512_driver
  183.  
  184. TERM_TABLE_START(aed767_driver)
  185.     "aed767", "AED 767 Terminal",
  186.     AED_XMAX, AED_YMAX, AED_VCHAR, AED_HCHAR,
  187.     AED_VTIC, AED_HTIC, options_null, AED_init, AED_reset,
  188.     AED_text, null_scale, AED_graphics, AED_move, AED_vector,
  189.     AED_linetype, AED_put_text, null_text_angle,
  190.     null_justify_text, do_point, do_arrow, set_font_null
  191. TERM_TABLE_END(aed767_driver)
  192.  
  193. #undef LAST_TERM
  194. #define LAST_TERM aed767_driver
  195.  
  196. #endif /* TERM_TABLE */
  197. #endif /* TERM_PROTO_ONLY */
  198.  
  199. #ifdef TERM_HELP
  200. START_HELP(aed767)
  201. "1 aed767",
  202. "?commands set terminal aed767",
  203. "?set terminal aed767",
  204. "?set term aed767",
  205. "?terminal aed767",
  206. "?term aed767",
  207. "?aed767",
  208. "?commands set terminal aed512",
  209. "?set terminal aed512",
  210. "?set term aed512",
  211. "?terminal aed512",
  212. "?term aed512",
  213. "?aed512",
  214. " The `aed512` and `aed767` terminal drivers support AED graphics terminals.",
  215. " The two drivers differ only in their horizontal ranges, which are 512 and",
  216. " 768 pixels, respectively.  Their vertical range is 575 pixels.  There are",
  217. " no options for these drivers."
  218. END_HELP(aed767)
  219. #endif
  220.